package com.rj.ability.leqi.adapter.domain.aisino;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.rj.core.validation.constraints.StringField;
import com.rj.util.AssertUtils;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;

import java.util.List;

/**
 * 不动产销售
 *
 * @author YFX_RANLUBO
 * @date 2024/08/08 09:14
 **/
@Data
public class AisinoBdcxsData {

    /**
     * 不动产信息
     */
    @JsonProperty("realEstateSalesList")
    @NotEmpty(message = "不动产销售信息不能为空")
    List<AisinoBdcxstdysData> bdcxstdys;
    /**
     * 多方共同购买标志	1	否	Y：多方共同购买
     * N：非多方共同购买 当为N或者空时，多方共同购买方list必须为空。
     */
    @StringField(value = "多方共同购买标志", maxLen = 1, dict = {"Y", "N"})
    @JsonProperty("coPurchaseLogo")
    String dfgtgmbz;
    /**
     * 共同购买方信息
     */
    @JsonProperty("coPurchaseList")
    List<AisinoGtgmfData> gtgmfList;

    /**
     * 校验数据
     */
    public void check() {
        AssertUtils.validation(this);
        bdcxstdys.forEach(AisinoBdcxstdysData::check);
        if ("Y".equals(dfgtgmbz)) {
            AssertUtils.notNull("共同购买方信息", gtgmfList);
            gtgmfList.forEach(AisinoGtgmfData::check);
        } else {
            AssertUtils.mustNull("非多方购买时,共同购买方信息", gtgmfList);
        }

    }
}
